package com.crm.user.dao;

import java.util.List;

import com.crm.sys.model.Department;
import com.crm.sys.model.Role;
import com.crm.sys.model.UserRefRole;
import com.crm.user.model.UserAccount;
import com.crm.user.model.UserInfo;

public interface UserDao {
	
	/**
	 * 用户登陆
	 * @return UserAccount  用户对象信息
	 * @throws Exception
	 */
	public UserAccount getUserAccountInfo(UserAccount user) ;
	
	public List<UserInfo> getUserAll(UserInfo u);
	
	/**
	 * 用户登陆
	 * @return UserAccount  用户对象信息
	 * @throws Exception
	 */
	public UserAccount getUserAccountByAccount(UserAccount user) ;
 
	/**
	 * 根据ID查询用户账号信息
	 * @param id
	 * @return
	 */
	public UserAccount getUserAccountInfoById(UserAccount user);
	/**
	 * 新增用户
	 * @param user
	 * @return
	 */
	public UserAccount insertUser(UserAccount user);
	/**
	 * 新增用户基本信息
	 * @param user
	 * @return
	 */
	public UserInfo insertUserInfo(UserInfo userinfo);
	/**
	 * 根据用户账号ID查询用户基本信息
	 * @param id
	 * @return
	 */
	public UserInfo getUserInfo(UserInfo user);
	/**
	 * 修改用户基本信息
	 * @param userinfo
	 * @return
	 */
	public int updateUserInfo(UserInfo userinfo);
	/**
	 * 账号管理
	 * @param userinfo
	 * @return
	 */
	public int updatePassword(UserAccount useraccount);
	/**
	 *  用户查询
	 * @param response
	 * @param request
	 * @param redirectAttributes
	 * @return
	 * @throws Exception
	 */
	public List<UserInfo> getUserList(UserInfo user) ;
	/**
	 *  用户绑定角色列表的查询
	 * @param response
	 * @param request
	 * @param redirectAttributes
	 * @return
	 * @throws Exception
	 */
	public List<Role> getRole(Role role);
	/**
	 *  用户绑定角色保存的先删除
	 * @param response
	 * @param request
	 * @param redirectAttributes
	 * @return
	 * @throws Exception
	 */
	public int deleteRoleList(UserAccount useraccount);
	/**
	 *  用户绑定角色保存的后添加绑定
	 * @param response
	 * @param request
	 * @param redirectAttributes
	 * @return
	 * @throws Exception
	 */
	public int insertRoleList(UserRefRole role);
	/**
	 *  用户修改的ID查询
	 * @param response
	 * @param request
	 * @param redirectAttributes
	 * @return
	 * @throws Exception
	 */
	public UserInfo getUserByid(UserInfo user);
	/**
	 *  用户修改的保存
	 * @param response
	 * @param request
	 * @param redirectAttributes
	 * @return
	 * @throws Exception
	 */
	public int saveUserByid(UserInfo user);
 
	/**
	 *  用户绑定行业的删除
	 * @param response
	 * @param request
	 * @param redirectAttributes
	 * @return
	 * @throws Exception
	 */
	public int deletecalling(Long uid);
	/**
	 *  用户绑定行业的添加
	 * @param response
	 * @param request
	 * @param redirectAttributes
	 * @return
	 * @throws Exception
	 */
	public int insertcalling(Long uid,int callingid);
	/**
	 *  行业列表查询
	 * @param response
	 * @param request
	 * @param redirectAttributes
	 * @return
	 * @throws Exception
	 */
	public List<Integer> getCallingByuid(Long uid);
 
	/**
	 *  公司通讯录根据部门查用户列表
	 * @param response
	 * @param request
	 * @param redirectAttributes
	 * @return
	 * @throws Exception
	 */
	public List<UserInfo>getUserInfoListByDeptid(UserInfo dept);
	/**
	 * 修改用户状态
	 * @param useraccount
	 * @return
	 */
	public int updateUserState(UserAccount useraccount);
	/**
	 * 删除用户
	 * */
	public int deleteUser(UserAccount ua);
	
	
}
